home *** CD-ROM | disk | FTP | other *** search
/ Power Programmierung / Power-Programmierung CD 2 (Tewi)(1994).iso / doc / netbios / netbios.doc
Text File  |  1989-08-15  |  79KB  |  2,835 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.         ##    ##  ####### ########      ######   ####    ##      ######
  17.         ###   ##  ##         ##         ##   ##   ##   ##  ##   ##    ##
  18.         ####  ##  ##         ##         ##   ##   ##  ##    ##  ##      
  19.         ## ## ##  #####      ##         ######    ##  ##    ##   ###### 
  20.         ##  ####  ##         ##         ##   ##   ##  ##    ##        ##
  21.         ##   ###  ##         ##         ##   ##   ##   ##  ##    ##   ##
  22.         ##    ##  #######    ##         ######   ####    ##       ##### 
  23.  
  24.  
  25.  
  26.                                   CBIS Net Bios
  27.                              Programmer's Reference
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.                                  by Tom Thompson
  36.  
  37.                                    April 1988
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.                                     CBIS,Inc.
  47.                          5875 Peachtree Industrial Blvd.
  48.                               Bldg. 100  Suite 170
  49.                                Norcross, GA  30092
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.         Copyright (c) 1988 by CBIS, Inc.  All rights reserved.  No part 
  72.         of this publication may be reproduced without the prior written 
  73.         permission of CBIS, Inc., P.O. Box 921206, Norcross, GA 30092.
  74.  
  75.         CBIS, Inc. makes no representations or warranties with respect to 
  76.         the contents hereof and specifically disclaims any warranties 
  77.         either expressed or implied of merchantability or fitness for any 
  78.         particular purpose.  CBIS, Inc. reserves the right to change this 
  79.         publication and the software programs to which it relates with no 
  80.         obligation to notify any person or organization of such changes.
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.                                       ii
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.         Abstract
  137.  
  138.  
  139.         Net BIOS is a software interface between computer programs and a 
  140.         Local Area Network Adapter (LANA), or "LAN card".  It is used in 
  141.         Local Area Network (LAN) systems consisting of IBM compatible 
  142.         microcomputers.  The components of a LAN are the computers, each 
  143.         containing a LAN card, the interconnect cables, and the Net BIOS 
  144.         software.  Net BIOS has been implemented for a variety of LAN 
  145.         card types.  These include Token Ring, Ethernet and ARCNET.  
  146.         Application programs on different computers can communicate by 
  147.         using Net BIOS services to send and receive messages.
  148.  
  149.         The purpose of the Net BIOS is to isolate the application program 
  150.         from the actual type of hardware used in the LAN.  It also spares 
  151.         the application programmer the details of network error recovery 
  152.         and low level message addressing or routing.
  153.  
  154.         In a Net BIOS implementation of a LAN, the computers on the 
  155.         system are known by names.  Each computer has a permanent name 
  156.         that is programmed onto the LAN card.  Computers on the system 
  157.         can also be known by names designated by the programmer.  The 
  158.         commands available in Net BIOS include commands to add and delete 
  159.         names.
  160.  
  161.         Computers on a Net BIOS implementation of a LAN can communicate 
  162.         either by establishing a session or by using datagram or 
  163.         broadcast methods.  Sessions allow a larger message to be sent 
  164.         and handle error detection and recovery but they only allow 
  165.         computers to communicate on a one-to-one basis.  Datagram 
  166.         and broadcast methods allow one computer to communicate with 
  167.         several other computers at the same time, but are limited in 
  168.         message size.  Datagram and broadcast methods of communication do 
  169.         no handle error detection and recovery.  Net BIOS session control 
  170.         commands and session data transfer commands allow communication 
  171.         through sessions.  Net BIOS datagram commands allow communication 
  172.         without the use of sessions.  
  173.  
  174.         All commands are presented to the Net BIOS in a format called 
  175.         Network Control Blocks (NCB).  These blocks are allocated in 
  176.         memory by the user program.  The user program is also responsible 
  177.         for setting the neccessary input fields of the NCB and 
  178.         initializing the fields not used to zeros.  Several fields in the 
  179.         NCB are reserved for output from Net BIOS upon completion of a 
  180.         command.
  181.  
  182.         This manual discusses names and data communication methods in a 
  183.         Net BIOS implementation of a LAN.  Discussions of NCBs and Net 
  184.         BIOS commands include descriptions of all the fields in an NCB and 
  185.         all Net BIOS commands.  Each Net BIOS command description lists 
  186.         the NCB fields that are used for input or output for that 
  187.         command.  NCB and command information is summarized in the 
  188.         Appendices at the end of the manual.
  189.  
  190.  
  191.  
  192.  
  193.                                        iii
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.                                 TABLE OF CONTENTS
  203.  
  204.  
  205.  
  206.              Introduction . . . . . . . . . . . . . . . . . .  1
  207.  
  208.              Chapter 1                      
  209.                   General Information . . . . . . . . . . . .  2
  210.                        Net BIOS Names . . . . . . . . . . . .  2
  211.                        Types of Data Transfer . . . . . . . .  3
  212.                        Data Transfer Example  . . . . . . . .  3
  213.                        Calling Net BIOS . . . . . . . . . . .  3
  214.                        Net BIOS Command Modes . . . . . . . .  4
  215.  
  216.              Chapter 2
  217.                   Communication with Net BIOS . . . . . . . .  5
  218.                        Wait Mode  . . . . . . . . . . . . . .  5
  219.                        No-Wait Polling Mode . . . . . . . . .  5
  220.                        No-Wait with Post Mode . . . . . . . .  6
  221.  
  222.              Chapter 3
  223.                   Network Control Block Format  . . . . . . .  7
  224.                   Assembly Language NCB Structure . . . . . .  9
  225.  
  226.              Chapter 4
  227.                   Net BIOS Commands . . . . . . . . . . . . . 10
  228.                        General Commands . . . . . . . . . . . 11
  229.                             Reset Command . . . . . . . . . . 11
  230.                             Cancel Command  . . . . . . . . . 12
  231.                             Adapter Status Command  . . . . . 13
  232.                             Unlink Command  . . . . . . . . . 16
  233.                        Name Commands  . . . . . . . . . . . . 17
  234.                             Add Name Command  . . . . . . . . 17
  235.                             Add Group Name Command  . . . . . 18
  236.                             Delete Name Command . . . . . . . 19
  237.                        Session Control Commands . . . . . . . 20
  238.                             Call Command  . . . . . . . . . . 20
  239.                             Listen Command  . . . . . . . . . 21
  240.                             Hangup Command  . . . . . . . . . 22
  241.                             Session Status Command  . . . . . 23
  242.                        Session Data Transfer Command  . . . . 25
  243.                             Send Command . .  . . . . . . . . 26
  244.                             Chain Send Command  . . . . . . . 27
  245.                             Receive Command . . . . . . . . . 28
  246.                             Receive Any Command . . . . . . . 29
  247.                        Datagram Commands  . . . . . . . . . . 30
  248.                             Send Datagram Command . . . . . . 30
  249.                             Receive Datagram Command  . . . . 31
  250.                             Send Broadcast Command  . . . . . 32
  251.                             Receive Broadcast Command . . . . 33
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.                                        iv
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.                                 TABLE OF CONTENTS (Cont.)
  269.  
  270.  
  271.  
  272.  
  273.              Appendix A
  274.                   Net BIOS Command Summary . . . . . . . . . A-1
  275.  
  276.              Appendix B
  277.                   Net BIOS Control Block Format  . . . . . . B-1
  278.                   NCB Field Input/Output Summary . . . . . . B-2
  279.  
  280.              Appendix C
  281.                   Net BIOS Error Code Listing  . . . . . . . C-1
  282.  
  283.  
  284.  
  285.              List of Tables
  286.  
  287.                   1 - Adapter Status Result Buffer . . . . . . 14
  288.                   2 - Session Status Result Buffer . . . . . . 24
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.                                        v
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.         Introduction
  335.  
  336.         This manual describes the commands and command formats that are 
  337.         used in the Net BIOS software interface.  Net BIOS is an 
  338.         interface standard for computer to computer communication in a 
  339.         Local Area Network.  The manual assumes the reader is familiar 
  340.         with 8086 Assembly language, however, no prior experience with 
  341.         Net BIOS is required. 
  342.  
  343.         Chapter 1 gives a general overview of Net BIOS concepts.  It 
  344.         defines and states the purpose of Net BIOS.  Computers in a Net 
  345.         BIOS implementation are known on a Local Area Network by names.  
  346.         This section explains the concepts concerning names.  Computers 
  347.         on a network communicate by session or by datagram methods.  
  348.         The advantages of each of these methods of communication are 
  349.         discussed.  This chapter includes a list of the steps that must 
  350.         be taken in order for two computers to communicate through a 
  351.         session.  Use of Net BIOS through the Network Control Block 
  352.         format and the concept of wait and no-wait command modes is 
  353.         introduced.
  354.  
  355.         Chapter 2 gives more detailed information about wait and no 
  356.         wait command modes and lists the general steps necessary to pass 
  357.         a Net BIOS command from a user program to Net BIOS for 
  358.         execution.
  359.  
  360.         Chapter 3 lists and describes the 14 fields in a Network Control 
  361.         Block.  This chapter includes an example of an assembly language 
  362.         NCB structure.
  363.  
  364.         Chapter 4 describes each of the available Net BIOS commands in 
  365.         detail and lists the Network Control Blocks that are used for 
  366.         each command.  Each command description specifies which fields 
  367.         must be set by the user program and which fields are returned by 
  368.         Net BIOS after execution of the command.
  369.  
  370.         Finally, Appendices A and B include tabular summaries of the 
  371.         information presented in the text concerning Net BIOS commands and 
  372.         Network Control Blocks.  
  373.  
  374.         Appendix C contains a listing of the error codes that may be 
  375.         encountered while using the Net BIOS. 
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.                                        1
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.         Chapter 1    General Information
  401.  
  402.         Net BIOS is a software interface between computer programs and a 
  403.         Local Area Network Adapter (LANA), or "LAN card".  It is used in 
  404.         Local Area Network (LAN) systems consisting of IBM compatible 
  405.         microcomputers.  The components of a LAN are the computers, each 
  406.         containing a LAN card, the interconnect cables, and the Net BIOS 
  407.         software.  Net BIOS has been implemented for a variety of LAN 
  408.         card types.  These include Token Ring, Ethernet and ARCNET.  
  409.         Application programs on different computers can communicate by 
  410.         using Net BIOS services to send and receive messages.
  411.  
  412.         The purpose of the Net BIOS is to isolate the application program 
  413.         from the actual type of hardware used in the LAN.  It also spares 
  414.         the application programmer the details of network error recovery 
  415.         and low level message addressing or routing.
  416.  
  417.  
  418.         Net Bios Names
  419.  
  420.         Each computer on the network is known and addressed by the other 
  421.         computers on the network by a name.  Each computer has a 
  422.         permanent name and can be given additional names by the user 
  423.         during network communication.  Names are 16 characters long and 
  424.         should not contain the asterisk (*) character.
  425.  
  426.         The permanent name is called the node number.  The node 
  427.         number is usually in ROM (read only memory) on the 
  428.         LAN adapter card or is set by dip switches on the LAN adapter 
  429.         card.  The node number consists of 10 characters of binary zeros 
  430.         followed by 6 more characters which must be unique on the 
  431.         network.
  432.  
  433.         Up to 16 local names may be added to the Net Bios for each 
  434.         computer on the network by the use of the ADD NAME and ADD GROUP 
  435.         NAME commands.  These names are stored in a local name 
  436.         table and are lost when the computer is turned off, or when the 
  437.         Net BIOS RESET command is issued.  A local name can be removed 
  438.         from the local name table by use of the Net BIOS DELETE NAME 
  439.         command. 
  440.  
  441.         The local names may be unique names or group names.  A unique name 
  442.         is guaranteed by the Net BIOS to be unique across the LAN.  A 
  443.         group name added at one computer may also be added, as a group 
  444.         name, at other computers.
  445.  
  446.         Data transfer commands must specify both a source and a 
  447.         destination name.  Since multiple names are allowed on 
  448.         each computer, several unrelated tasks may use the Net BIOS 
  449.         without interference.
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.                                        2
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.         Types of data transfer
  467.  
  468.         Data can be transferred from computer to computer by using 
  469.         session level or datagram level commands of the Net BIOS.
  470.  
  471.         Session level commands allow user programs to communicate without 
  472.         requiring that they handle the details of network error detection 
  473.         or breaking larger messages into smaller messages to match any 
  474.         physical network limitations.  Session level commands are 
  475.         restricted to communication from one unique name to another.  Before 
  476.         using session level data transfer, the applications must 
  477.         negotiate a "logical connection".  This is accomplished by 
  478.         issuing a Net BIOS CALL command on one computer and a Net BIOS 
  479.         LISTEN command on another computer. 
  480.  
  481.         Datagram level data transfers are addressed to a lower level in 
  482.         the LAN adapter card.  The intialization requirements for sending 
  483.         or receiving a datagram message are simpler, however, more of the 
  484.         error control and data formatting problems are left to the user 
  485.         program.  Datagrams are also restricted in the size of messages 
  486.         to 512 bytes or less.  Datagrams are useful for performing 
  487.         functions not possible at the session level.  For example, a 
  488.         datagram message can be "broadcast" to more than one computer on 
  489.         the network at the same time.  
  490.  
  491.  
  492.         Data Transfer Example
  493.  
  494.         A session level data transfer sequence can be grouped into four 
  495.         steps.  Each step on one computer in the network must have a 
  496.         complementary step performed on another computer in the network.  
  497.  
  498.             (1)   Add a unique name to the Net BIOS local name table 
  499.                   using the ADD NAME command.
  500.                   
  501.             (2)   Initiate a session by using the CALL or LISTEN command.  
  502.                   If using a CALL, then another computer should have 
  503.                   performed a LISTEN. 
  504.             
  505.             (3)   Transfer messages using the SEND and RECEIVE commands.
  506.  
  507.             (4)   Terminate the session with the HANGUP command.
  508.  
  509.  
  510.         Calling Net BIOS
  511.  
  512.         Net BIOS commands are communicated to Net BIOS in the form of a 
  513.         Network Control Blocks (NCBs).  The user program is responsible 
  514.         for allocating space for and creating NCBs.  An NCB contains several 
  515.         fields.  Some fields are used to pass input values to Net BIOS 
  516.         while others are used by Net BIOS to return results from the 
  517.         command execution.  The NCB fields include a command code field 
  518.         and a command result field.  
  519.  
  520.  
  521.  
  522.  
  523.                                        3
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.         After creating an NCB, it is passed to the Net BIOS by loading 
  533.         the address (segment:offset) of the NCB into the ES:BX registers, 
  534.         and then executing a software Interrupt 5C hex.  The Net BIOS 
  535.         will perform the operation specified by the command code field in 
  536.         the NCB.
  537.  
  538.  
  539.         Net Bios Command Modes
  540.  
  541.         Three command modes are available when executing a Net BIOS 
  542.         command:
  543.  
  544.              - Wait mode
  545.              - No-wait mode with completion post routine
  546.              - No-wait mode with polling
  547.  
  548.         In the wait mode, the Net BIOS will perform the command before 
  549.         returning to the calling program. The AL register will have the 
  550.         result of the operation.  The no-wait modes may queue the command 
  551.         for later execution and return program control to the user 
  552.         program immediately.  The user program can determine when the 
  553.         command has been completed by testing a flag in the NCB 
  554.         (polling) or by specifying the address of a "post" subroutine to 
  555.         be called when the command completes.
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.                                        4
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.         Chapter 2  Communicating with Net Bios
  599.  
  600.         Commands are issued to the Net BIOS in the following manner:
  601.  
  602.              -    Allocate and initialize an NCB
  603.              -    Load the ES:BX registers with the address of the NCB
  604.              -    Execute an INT 5Ch instruction
  605.  
  606.         Two fields in the NCB determine the command mode, these are the 
  607.         high-order bit of the COMMAND field and the POST field.  The 
  608.         command field is an 8 bit code that specifies the desired action.  
  609.         The POST address is a double word pointer to a user routine to be 
  610.         called when the command is completed, or 0:0 to indicate no user 
  611.         routine.  The valid combinations are:
  612.  
  613.            High-Order Bit   Post Field     Mode
  614.  
  615.                 0           don't care     Wait
  616.  
  617.                 1           0:0            No-wait polling
  618.  
  619.                 1           address of     No-wait with post
  620.                             post routine
  621.  
  622.  
  623.         Wait Mode
  624.  
  625.         When a wait mode command is issued, the Net BIOS will not return 
  626.         control to the user program until the command has been completed.  
  627.         Upon return, the AL register will contain 0 if no error occurred 
  628.         or an error code value.  The AH register contents are destroyed, 
  629.         but other registers are not changed.  The error code in AL is the 
  630.         same as that contained in the NCB RETCODE field.
  631.  
  632.  
  633.         No-Wait Polling Mode
  634.  
  635.         The Net Bios will, after minimum processing, return immediately, 
  636.         even though the command may not have completed.  On return, the 
  637.         AL register will contain an immediate error code or 0.  
  638.  
  639.              Contents AL         Indicates
  640.  
  641.                 not 0            Command could not be queued 
  642.                                  (e.g., invalid COMMAND code).
  643.  
  644.                   0              Command was queued
  645.  
  646.         If the command was queued successfully then the program should 
  647.         poll the CMD_DONE field of the NCB, until CMD_DONE field is not 
  648.         0ffh.  This indicates that the command has completed and all 
  649.         other NCB fields are valid.  The AH register contents are 
  650.         destroyed, but other registers are not changed. 
  651.  
  652. è
  653.  
  654.                                        5
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.         No-Wait With Post Mode
  664.  
  665.         The Net Bios will return immediately, even though the command may 
  666.         not have completed.  On return, the AL register will contain an 
  667.         immediate error code or 0.
  668.  
  669.              Contents AL         Indicates
  670.  
  671.                 not 0            Command could not be queued 
  672.                                  (e.g., invalid COMMAND code).
  673.  
  674.                   0              Command was queued
  675.  
  676.  
  677.         If the command could not be queued, the POST routine will not be 
  678.         called. The AH register contents are destroyed, and other 
  679.         registers are not changed.
  680.  
  681.         If the command was queued, then when the command completes, the 
  682.         Net BIOS will call the user's POST routine with interrupts 
  683.         disabled, the stack set for an IRET, and ES:BX containing the 
  684.         address of the completed NCB. 
  685.  
  686.         Another Net BIOS command can be issued from the POST routine, 
  687.         however, it should also be a no-wait mode command.
  688.  
  689.         The user POST routine should be as short as possible and no 
  690.         registers should be changed.  Interrupts may be enabled in the 
  691.         POST routine.
  692.  
  693.         In some cases, the user's POST routine will be called before 
  694.         control is returned from the INT 5Ch that started the command.
  695.  
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.                                        6
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.         Chapter 3    Network Control Block Format
  730.  
  731.         Net BIOS commands must conform to a Network Control Block (NCB) 
  732.         format.  Network Control Blocks (NCBs) are 64 bytes in length and 
  733.         consist of 14 different fields.  All fields in a NCB should be 
  734.         initialized to zero.  The fields used in a command should then be 
  735.         set.  Results of the command are communicated through the NCB.  A 
  736.         description of each field in the NCB format follows.
  737.  
  738.         FIELD     DESCRIPTION
  739.  
  740.         COMMAND   A 1 byte field used for the Net Bios command code.  The 
  741.                   high order bit of this field should be set to 1 to 
  742.                   indicate no-wait mode or 0 to indicate wait mode.  The 
  743.                   remaining 7 bits are used for the command code.  All 
  744.                   Net BIOS commands except RESET and CANCEL have wait and 
  745.                   no-wait options.  In no-wait mode the POST field must 
  746.                   also be set.  In wait mode the Net BIOS waits for the 
  747.                   command to complete before returning to the calling 
  748.                   program.  In the no-wait mode the Net BIOS queues the 
  749.                   command for later execution and then returns to the 
  750.                   calling program, which may perform other processing or 
  751.                   issue additional Net BIOS commands. 
  752.  
  753.         RETCODE   A 1 byte field in which Net BIOS command results are 
  754.                   returned.  This field will contain a zero if no error 
  755.                   or an error code if an error was encountered.  The 
  756.                   error codes are listed in Appendix C.
  757.  
  758.         LSN       A 1 byte field containing the local session number that 
  759.                   is assigned by Net BIOS when a session is established.  
  760.                   This number will have a value between 1 and 254.  This 
  761.                   field is returned by CALL and LISTEN, and must be 
  762.                   supplied for SEND and RECEIVE commands.               
  763.  
  764.         NUM       A 1 byte field used for the name number associated with 
  765.                   the name in the local name table.  This number is 
  766.                   returned by ADD NAME commands and must be supplied for 
  767.                   RECEIVE ANY and datagram commands.  The value of this 
  768.                   number ranges from 1 to 254.              
  769.  
  770.         BUFADR    A 4 byte field used for the address of message to be 
  771.                   sent or received. 
  772.  
  773.         BUFLEN    A 2 byte field containing the length in bytes of 
  774.                   message buffer. For receive commands, this field is set 
  775.                   to the maximum buffer size and the actual length is 
  776.                   returned in this field upon completion of the Net BIOS 
  777.                   command.       
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.                                        7
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.         CALLNAME  A 16 byte field used to indicate the name of the 
  796.                   computer you want to communicate with for CALL, LISTEN 
  797.                   and datagrams.  For a CHAIN SEND  command, the first 
  798.                   word specifies the length of the second buffer, and the 
  799.                   next two words specify the address.  All 16 bytes must 
  800.                   be used.    
  801.  
  802.         NAME      A 16 byte field used to specify a local name.  
  803.                   Specifies a name to add to the local name table for ADD 
  804.                   NAME, or the name to use for other commands. 
  805.  
  806.         RTO       A 1 byte field used for receive time-out specifications 
  807.                   in .5 second increments.  Must be set for CALL and 
  808.                   LISTEN commands.  This field indicates the maximum time 
  809.                   that will be allowed before an error condition will 
  810.                   result on a receive command.  Once the session is 
  811.                   established this value remains constant throughout the 
  812.                   session.     
  813.  
  814.         STO       A 1 byte field used for send time-out specifications in 
  815.                   .5 second increments.  This field must be set for CALL 
  816.                   and LISTEN commands. If the time expires before the 
  817.                   send has completed a time out error will result and the 
  818.                   session will be terminated.
  819.  
  820.         POST      Address of user interrupt routine called when command 
  821.                   completes and no-wait mode  mode was specified in 
  822.                   command code. Not called if set to 0:0. 
  823.  
  824.         LANA_NUM  A 1 byte field that contains the number of the adapter 
  825.                   card to be addressed by the command.  It there are two 
  826.                   adapter cards installed on the same computer then a 0 
  827.                   in this field signifies that the command is addressing 
  828.                   the first card and a 1 indicates that the command is 
  829.                   addressing the second card.  If there is only one 
  830.                   adapter card in the computer then this field should 
  831.                   contain a 0. 
  832.  
  833.         CMD_DONE  A 1 byte field that is set by Net BIOS when a command 
  834.                   is completed. A value of 0FFH  indicates the command 
  835.                   has not completed.  When the command has completed, 
  836.                   CMD_DONE is set to same value as RETCODE.         
  837.  
  838.         RES       A 14 byte field used internally by Net Bios. Should not 
  839.                   be used for any other purposes.
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.  
  852.                                        8
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861.         Assembly Language NCB Structure
  862.  
  863.         Shown below is an example of an NCB defined in an assembly 
  864.         language program.
  865.  
  866.              NCB struc                 
  867.               ncb_command          db ?   ;command code
  868.               ncb_retcode          db ?   ;err ret code
  869.               ncb_lsn              db ?   ;session number
  870.               ncb_num              db ?   ;name number
  871.               ncb_bufadr           dd ?   ;ptr to send/recv data
  872.               ncb_buflen           dw ?   ;len of data
  873.               ncb_callname db 16 dup (?)  ;remote name
  874.               ncb_name     db 16 dup (?)  ;local name
  875.               ncb_rto              db ?   ;recv timeout
  876.               ncb_sto              db ?   ;send timeout
  877.               ncb_post             dd ?   ;async cmd complete post addr
  878.               ncb_lana_num         db ?   ;adapter number
  879.               ncb_cmd_done         db ?   ;0ffh until command completed
  880.               ncb_res      db 14 dup (?)  ;reserved
  881.              NCB ends
  882.  
  883.  
  884.  
  885.  
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.                                        9
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.         Chapter 4    Net BIOS Command Descriptions
  928.  
  929.         Net BIOS commands can be grouped into five classes.  These are
  930.  
  931.              -    General
  932.              -    Name
  933.              -    Session Control
  934.              -    Session Data Transfer
  935.              -    Datagram
  936.  
  937.         General commands include commands to reset Net BIOS and specify 
  938.         the number of sessions and NCBs to be supported, or to determine 
  939.         the status of the Net BIOS.
  940.  
  941.  
  942.         Session Control commands are used to initiate or terminate 
  943.         communication between two computers on the network, or to 
  944.         access the status information on a particular session.
  945.  
  946.         Session Data Transfer commands are used to send or receive 
  947.         messages between computers once the session has been established.
  948.  
  949.         Datagram commands are used to send and receive messages at a 
  950.         lower level in the LAN system.  These messages are restricted in 
  951.         size but can be sent to and received from more than one computer 
  952.         at a time.
  953.  
  954.         The commands available in each group are described below.  For 
  955.         each command, the required NCB fields are listed.  Although not 
  956.         absolutely required, it is good practice to initialize unused 
  957.         fields to zero in new NCBs.  It is generally not necessary to 
  958.         clear unused fields when re-using an NCB for another command.  
  959.         For example, a completed LISTEN command returns the name of the 
  960.         caller in the CALLNAME field.  It is not necessary to clear this 
  961.         field before using the same NCB for a RECEIVE command.
  962.  
  963.  
  964.  
  965.  
  966.  
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.                                        10
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.  
  993.         General Commands
  994.  
  995.         The general commands are
  996.  
  997.                   -    Reset
  998.                   -    Cancel
  999.                   -    Adapter Status 
  1000.                   -    Unlink
  1001.  
  1002.         These commands can be used to reset Net BIOS and specify the 
  1003.         number of sessions and NCBs to be supported, to cancel previous 
  1004.         commands,  to determine the status of the Net BIOS, or to unlink 
  1005.         from diskless boot.  
  1006.  
  1007.  
  1008.                                   Reset Command
  1009.  
  1010.         Use this command to clear and configure the Net Bios.  
  1011.  
  1012.         Caution:  When this command is issued, all existing names and 
  1013.                   sessions are lost, therefore it should be issued before 
  1014.                   starting any processes that use the Net Bios.
  1015.  
  1016.         Caution:  In some implementations, session and command buffers 
  1017.                   take space otherwise used for packet buffers.  
  1018.                   Therefore, keep these parameters reasonable.
  1019.  
  1020.  
  1021.         NCB FIELDS SET:
  1022.  
  1023.              FIELD     DESCRIPTION          
  1024.  
  1025.              COMMAND   032h (Wait mode), No-wait mode not available
  1026.              LANA_NUM  Specifies which LANA the command is addressing 
  1027.              LSN       Number of sessions to be supported 
  1028.                        Possible values between 1 and 32 
  1029.              NUM       Number of commands (NCBs) outstanding at one time 
  1030.                        Possible values between 1 and 32
  1031.  
  1032.  
  1033.         NCB FIELDS RETURNED:
  1034.  
  1035.              FIELD     DESCRIPTION          
  1036.  
  1037.              RETCODE   Error code or 0 if no error.
  1038.              CMD_DONE  FF until command done
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.                                        11
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.                                  Cancel Command
  1061.  
  1062.         Use this command to cancel a previous command.  
  1063.  
  1064.         Caution:  If this command is used with a SEND or CHAIN SEND 
  1065.                   command the session will be terminated.
  1066.  
  1067.                   The following commands cannot be canceled:  
  1068.  
  1069.                        RESET                 DELETE NAME      
  1070.                        CANCEL                SESSION STATUS   
  1071.                        ADD NAME              SEND DATAGRAM    
  1072.                        ADD GROUP NAME        SEND BROADCAST        
  1073.  
  1074.  
  1075.         NCB FIELDS SET:
  1076.  
  1077.              FIELD     DESCRIPTION          
  1078.  
  1079.              COMMAND   035h (Wait mode), No-wait mode not available
  1080.              LANA_NUM  Specifies which LANA the command is addressing 
  1081.              BUFADR    Address of the NCB for the previous command.   
  1082.  
  1083.  
  1084.         NCB FIELDS RETURNED:
  1085.  
  1086.              FIELD     DESCRIPTION          
  1087.  
  1088.              RETCODE   Error code or 0 if no error.
  1089.              CMD_DONE  FF until command done
  1090.  
  1091.  
  1092.  
  1093.  
  1094.  
  1095.  
  1096.  
  1097.  
  1098.  
  1099.  
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.                                        12
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.                              Adapter Status Command
  1126.  
  1127.         Use this command to get the status of a Net Bios -- either 
  1128.         local or remote.  
  1129.  
  1130.         The format of the Adapter Status Result buffer is shown in Table 1.
  1131.         The actual size of the status buffer will be 60 + 18n, where n is 
  1132.         the number of names in the name table of the selected Net Bios 
  1133.         (the permanent node name is not counted).
  1134.  
  1135.  
  1136.         NCB FIELDS SET:   
  1137.  
  1138.              FIELD     DESCRIPTION          
  1139.  
  1140.              COMMAND   033h (Wait mode), 0B3h (No-wait mode)
  1141.              LANA_NUM  Specifies which LANA the command is addressing      
  1142.              CALLNAME  Use asterisk as first character to refer to local Net BIOS
  1143.                        Use 15 character name to refer to remote Net BIOS
  1144.              BUFADR    Starting address of status report buffer 
  1145.              BUFLEN    Size of status report buffer, 348 bytes maximum
  1146.              POST      Used in no-wait mode only, 
  1147.                        Contains address of post routine or 0:0 
  1148.  
  1149.  
  1150.  
  1151.         NCB FIELDS RETURNED:
  1152.  
  1153.              FIELD     DESCRIPTION          
  1154.  
  1155.              BUFLEN    Actual size of status report buffer
  1156.              RETCODE   Error code or 0 if no error.
  1157.              CMD_DONE  FF until command done
  1158.  
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.                                        13
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.                                      Table 1
  1192.                           Adapter Status Result Buffer
  1193.                      
  1194.  
  1195.         ^U  Offset    Bytes   Field Description
  1196.         ___(Hex)    (Dec)________________________________________________
  1197.  
  1198.              0       6      Permanent node name.  This six byte identifier   
  1199.                             is obtained from either a ROM on the LAN card    
  1200.                             or from the node address DIP switch.             
  1201.  
  1202.              6       1      External jumper status.  The high bit of this    
  1203.                             byte indicates the interrupt number used by      
  1204.                             the LAN card -- 0 for IRQ 2 and 1 for IRQ 3.     
  1205.                             The second highest bit indicates the DMA chan-   
  1206.                             nel used by the LAN card -- 0 for channel 1      
  1207.                             and 1 for channel 3.  This byte is not sup-      
  1208.                             ported in all implementations.                   
  1209.  
  1210.              7       1      Power on test result.  Always zero in current    
  1211.                             versions.                                        
  1212.  
  1213.              8       2      Software version.  First byte is the major       
  1214.                             version, second is the minor version number.     
  1215.  
  1216.             0A       2      Minutes since system started.  When this field   
  1217.                             reaches 0FFFFH, it rolls over to 0.              
  1218.  
  1219.             0C       2      Number of CRC errors on received packets. (1)    
  1220.  
  1221.             0E       2      Number of alignment errors. (1)                  
  1222.  
  1223.             10       2      Number of transmit collisions.  (1)              
  1224.  
  1225.             12       2      Number of aborted transmits.  (1)                
  1226.  
  1227.             14       4      Number of packets transmitted.  When this        
  1228.                             field reaches 0FFFFFFFFH, it rolls over to 0.    
  1229.  
  1230.             18       4      Number of packets received.  When this field     
  1231.                             reaches 0FFFFFFFFH, it rolls over to 0.          
  1232.  
  1233.             1C       2      Number of retransmits. (1)                       
  1234.  
  1235.             1E       2      Number of times receiver was out of buffers.     
  1236.                             (1)                                              
  1237.  
  1238.             20       8      Not used -- reserved.                            
  1239.  
  1240.                               (Continued Next Page)
  1241.  
  1242.  
  1243.  
  1244.  
  1245.  
  1246.  
  1247.  
  1248.                                        14
  1249.  
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.                                Table 1 (Continued)
  1258.                           Adapter Status Result Buffer
  1259.  
  1260.  
  1261.           Offset    Bytes   Field Description
  1262.         ___(Hex)    (Dec)________________________________________________
  1263.            
  1264.             28       2      Number of free network command blocks (NCBs).    
  1265.                             (2)                                              
  1266.  
  1267.             2A       2      Number of NCBs specified in last RESET command.  
  1268.  
  1269.             2C       2      Maximum possible number of NCBs that can be      
  1270.                             specified in RESET command.                      
  1271.  
  1272.             2E       4      Not used -- reserved.                            
  1273.  
  1274.             32       2      Number of pending or active sessions.            
  1275.  
  1276.             34       2      Number of possible sessions specified in last    
  1277.                             RESET command.                                   
  1278.  
  1279.             36       2      Maximum number of possible sessions that can     
  1280.                             be specified in RESET command.                   
  1281.  
  1282.             38       2      Maximum packet size supported on the network.    
  1283.                             Note, this is not related to the maximum         
  1284.                             session message size, which is 64K bytes.        
  1285.  
  1286.             3A       2      Number of names in name table.                   
  1287.  
  1288.             3C      18      First name in name table. (3)                    
  1289.                               * 16 bytes - name                              
  1290.                               *  1 byte  - name number (2 to 254)            
  1291.                               *  1 byte  - name status.  Bit patterns are:   
  1292.                                    *  G----000 - name add in progress        
  1293.                                    *  G----100 - active name                 
  1294.                                    *  G----101 - delete pending              
  1295.                                    *  G----110 - improper duplicate name     
  1296.                                    *  G----111 - duplicate name, delete      
  1297.                                                  pending                     
  1298.  
  1299.             4E     X18      Addition name table entries as needed.           
  1300.  
  1301.  
  1302.  
  1303.         Notes
  1304.           1  These fields will not increment further after reaching 
  1305.              0FFFFH.
  1306.           2  In some implementations, there is no limit on the number of 
  1307.              NCBs pending, so an arbitrary large number is used in these 
  1308.              fields.
  1309.           3  The permanent name (name number 1) does not appear in the 
  1310.              name table.
  1311. è
  1312.  
  1313.                                        15
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.  
  1322.                                  Unlink Command
  1323.  
  1324.         Use this command to cancel diskless boot redirection.  Typically, 
  1325.         a diskless boot ROM makes a connection with a process that 
  1326.         supplies a virtual floppy image and redirects INT 13 requests for 
  1327.         drive A to this network device.  This command cancels that 
  1328.         redirection so that the local drive A may be accessed.  
  1329.  
  1330.         Caution:  Once this command is issued, there is no way to
  1331.                   re-establish the diskless boot connection.
  1332.  
  1333.  
  1334.         NCB FIELDS SET:   
  1335.  
  1336.              FIELD     DESCRIPTION          
  1337.  
  1338.              COMMAND   070h (Wait mode), No-wait mode not available
  1339.              LANA_NUM  Specifies which LANA the command is addressing      
  1340.  
  1341.  
  1342.         NCB FIELDS RETURNED:
  1343.  
  1344.              FIELD     DESCRIPTION          
  1345.  
  1346.              RETCODE   Error code or 0 if no error.
  1347.              CMD_DONE  FF until command done
  1348.  
  1349.  
  1350.  
  1351.  
  1352.  
  1353.  
  1354.  
  1355.  
  1356.  
  1357.  
  1358.  
  1359.  
  1360.  
  1361.  
  1362.  
  1363.  
  1364.  
  1365.  
  1366.  
  1367.  
  1368.  
  1369.  
  1370.  
  1371.  
  1372.  
  1373.  
  1374.  
  1375.  
  1376.  
  1377.  
  1378.  
  1379.                                        16
  1380.  
  1381.  
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.                                   NAME COMMANDS
  1390.  
  1391.  
  1392.         Name commands allow the addition and deletion of local and group 
  1393.         names for a computer on the network. The name commands are:
  1394.  
  1395.                   -    Add name
  1396.                   -    Add group name
  1397.                   -    Delete name
  1398.  
  1399.         Following is a description of the name commands and the NCB 
  1400.         fields that are used for these commands.  
  1401.  
  1402.  
  1403.  
  1404.                                 Add Name Command
  1405.  
  1406.         Use this command to add a name to the Net Bios local name table.  
  1407.         The name must be unique across the network.  
  1408.  
  1409.         NCB FIELDS SET:
  1410.  
  1411.              FIELD     DESCRIPTION          
  1412.  
  1413.              COMMAND   030h (Wait mode), 0B0h (No-wait mode)
  1414.              LANA_NUM  Specifies which LANA the command is addressing      
  1415.              NAME      16 Character name . . .
  1416.              POST      Used in no-wait mode only, 
  1417.                        Contains address of post routine or 0:0 
  1418.  
  1419.  
  1420.         NCB FIELDS RETURNED:  
  1421.  
  1422.              FIELD     DESCRIPTION          
  1423.  
  1424.              NUM       Name number, if successful, between 1 and 254
  1425.              RETCODE   Error code or 0 if no error.
  1426.              CMD_DONE  FF until command done
  1427.  
  1428.  
  1429.  
  1430.  
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.  
  1440.  
  1441.  
  1442.  
  1443.  
  1444.  
  1445.                                        17
  1446.  
  1447.  
  1448.  
  1449.  
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.                              Add Group Name Command
  1456.  
  1457.         Use this command to add a non-unique name to the Net Bios local name 
  1458.         table.  It the name already exists as a unique name by any other 
  1459.         process or machine an error code will be returned in the RETCODE 
  1460.         field and the name will not be added to the local name table.  
  1461.  
  1462.         Group names provide a mechanism to "broadcast" messages to a 
  1463.         specific group of computers on the system.  SEND DATAGRAM to a 
  1464.         group name will be received by all computers that have issued a 
  1465.         RECEIVE DATAGRAM under the group name.
  1466.  
  1467.  
  1468.         NCB FIELDS SET:
  1469.  
  1470.              FIELD     DESCRIPTION          
  1471.  
  1472.              COMMAND   036h (Wait mode), 0B6h (No-wait mode)    
  1473.              LANA_NUM  Specifies which LANA the command is addressing      
  1474.              NAME      16 Character name . . .
  1475.              POST      Used in no-wait mode only, 
  1476.                        Contains address of post routine or 0:0 
  1477.  
  1478.  
  1479.         NCB FIELDS RETURNED:
  1480.  
  1481.              FIELD     DESCRIPTION          
  1482.  
  1483.              NUM       Name number, if successful, between 1 and 254    
  1484.              RETCODE   Error code or 0 if no error.
  1485.              CMD_DONE  FF until command done
  1486.  
  1487.  
  1488.  
  1489.  
  1490.  
  1491.  
  1492.  
  1493.  
  1494.  
  1495.  
  1496.  
  1497.  
  1498.  
  1499.  
  1500.  
  1501.  
  1502.  
  1503.  
  1504.  
  1505.  
  1506.  
  1507.  
  1508.  
  1509.  
  1510.  
  1511.                                        18
  1512.  
  1513.  
  1514.  
  1515.  
  1516.  
  1517.  
  1518.  
  1519.  
  1520.  
  1521.                                Delete Name Command
  1522.  
  1523.         Use this command to delete a name from the Net Bios local name table.  
  1524.         If no sessions are active under the name to be deleted, the name 
  1525.         will be deleted.  If any sessions are active, then the command 
  1526.         will not complete until these sessions are terminated.
  1527.  
  1528.         Caution:  Any of the following commands outstanding and 
  1529.                   associated with the deleted command will be terminated 
  1530.                   with RETCODE = 17h (name was deleted): 
  1531.                   
  1532.                        LISTEN              RECEIVE ANY
  1533.                        RECEIVE DATAGRAM    RECEIVE 
  1534.                        BROADCAST
  1535.  
  1536.  
  1537.         NCB FIELDS SET:
  1538.  
  1539.              FIELD     DESCRIPTION          
  1540.  
  1541.              COMMAND   031h (Wait mode), 0B1h (No-wait mode)
  1542.              LANA_NUM  Specifies which LANA the command is addressing      
  1543.              NAME      16 Character name . . .
  1544.              POST      Used in no-wait mode only, 
  1545.                        Contains address of post routine or 0:0 
  1546.  
  1547.  
  1548.         NCB FIELDS RETURNED:
  1549.  
  1550.              FIELD     DESCRIPTION          
  1551.  
  1552.              RETCODE   17h            If name was deleted
  1553.              CMD_DONE  FF             Until command done
  1554.  
  1555.  
  1556.  
  1557.  
  1558.  
  1559.  
  1560.  
  1561.  
  1562.  
  1563.  
  1564.  
  1565.  
  1566.  
  1567.  
  1568.  
  1569.  
  1570.  
  1571.  
  1572.  
  1573.  
  1574.  
  1575.  
  1576.  
  1577.                                        19
  1578.  
  1579.  
  1580.  
  1581.  
  1582.  
  1583.  
  1584.  
  1585.  
  1586.  
  1587.                             SESSION CONTROL COMMANDS
  1588.  
  1589.         Session control commands are used to initiate or terminate 
  1590.         communication between two computers on the network, or to 
  1591.         access the status information on a particular session.
  1592.  
  1593.         Session control commands are:
  1594.  
  1595.                   -    Call
  1596.                   -    Listen
  1597.                   -    Hang up
  1598.                   -    Session Status
  1599.  
  1600.         The commands available in this group are described below.  For 
  1601.         each command, the required NCB fields are listed. 
  1602.  
  1603.  
  1604.  
  1605.                                   Call Command
  1606.  
  1607.         This command is used to establish a session with another machine 
  1608.         or process.  
  1609.  
  1610.         A LISTEN command must be outstanding for the called (remote) 
  1611.         name.  The session number is used when sending or receiving 
  1612.         session data, or in the HANG UP (session terminate) command.
  1613.  
  1614.  
  1615.         NCB FIELDS SET:
  1616.  
  1617.              FIELD     DESCRIPTION          
  1618.  
  1619.              COMMAND   010h (Wait mode), 090h (No-wait mode)
  1620.              LANA_NUM  Specifies which LANA the command is addressing      
  1621.              CALLNAME  Remote name
  1622.              NAME      Local name
  1623.              RTO       Receive timeout     
  1624.              STO       Send timeout
  1625.              POST      Used in no-wait mode only, 
  1626.                        Contains address of post routine or 0:0 
  1627.  
  1628.  
  1629.         NCB FIELDS RETURNED: 
  1630.  
  1631.              FIELD     DESCRIPTION          
  1632.  
  1633.              LSN       Session number, when successful, between 1 and 254
  1634.              RETCODE   Error code or 0 if no error.
  1635.              CMD_DONE  FF until command done
  1636.  
  1637.  
  1638.  
  1639.  
  1640.  
  1641.  
  1642.  
  1643.                                        20
  1644.  
  1645.  
  1646.  
  1647.  
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.                                  Listen Command
  1654.  
  1655.         Use this command to wait for a session to be established.  
  1656.         The session will be established when another machine or process 
  1657.         executes a CALL to the name associated with the LISTEN command.  
  1658.  
  1659.         More than one session can be established under the same name, or 
  1660.         same pair of names.
  1661.  
  1662.         PRIORITY:  Regardless of order in which the LISTENs are issued,   
  1663.         a CALL received from a specific name when there is a LISTEN 
  1664.         pending with a matching CALLNAME will take precedence over a
  1665.         LISTEN for any name (* in first character) command.
  1666.  
  1667.  
  1668.         NCB FIELDS SET:   
  1669.  
  1670.              FIELD     DESCRIPTION          
  1671.  
  1672.              COMMAND   011h (Wait mode), 091h (No-wait mode)
  1673.              LANA_NUM  Specifies which LANA the command is addressing      
  1674.              NAME      Local name under which session will be established.  
  1675.              CALLNAME  Name of the caller, 
  1676.                        If '*' is the first character, accept call from any name.  
  1677.              RTO       Receive timeout
  1678.              STO       Send timeout
  1679.              POST      Used in no-wait mode only, 
  1680.                        Contains address of post routine or 0:0 
  1681.  
  1682.  
  1683.         NCB FIELDS RETURNED:
  1684.  
  1685.              FIELD     DESCRIPTION          
  1686.  
  1687.              LSN       Session number, between 1 and 254
  1688.                        This number is used when sending or receiving 
  1689.                        session data, or in the HANG UP (session terminate) command.  
  1690.              CALLNAME  Contains caller's name if '*' was used as input 
  1691.              RETCODE   Error code or 0 if no error.
  1692.              CMD_DONE  FF until command done
  1693.  
  1694.  
  1695.  
  1696.  
  1697.  
  1698.  
  1699.  
  1700.  
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.  
  1708.  
  1709.                                        21
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.                                  Hang Up Command
  1720.  
  1721.         Use this command to close or terminate a session.  It may be 
  1722.         issued by either the CALLer or LISTENer.  
  1723.  
  1724.         If any RECEIVE commands for the session are outstanding on the 
  1725.         machine issuing the HANG UP, they are completed with RETCODE = 
  1726.         0Ah (session closed).  
  1727.  
  1728.         If SEND commands are outstanding, the HANG UP completion will be 
  1729.         delayed until the SEND has completed.
  1730.  
  1731.         If the remote end has any RECEIVE or SEND commands in progress 
  1732.         when HANG UP is started, they will be terminated with 
  1733.         RETCODE = 0Ah.  
  1734.  
  1735.         If no remote RECEIVEs or SENDs are terminated with session 
  1736.         closed, and if RECEIVE ANY commands are outstanding at the 
  1737.         remote, one and only one of the RECEIVE ANYs will be terminated 
  1738.         with the session closed error.  
  1739.  
  1740.         If no commands are outstanding at the remote machine when the 
  1741.         HANG UP occurs, then the next session command issued by the 
  1742.         remote will be terminated RETCODE set to either 08h (invalid 
  1743.         session) or 0Ah (session closed).
  1744.  
  1745.  
  1746.         NCB FIELDS USED:   
  1747.  
  1748.              FIELD     DESCRIPTION          
  1749.  
  1750.              COMMAND   012h (Wait mode), 092h (No-wait mode)
  1751.              LANA_NUM  Specifies which LANA the command is addressing      
  1752.              LSN       Session number of the session to be closed.
  1753.              POST
  1754.  
  1755.  
  1756.         NCB FIELDS RETURNED:
  1757.  
  1758.              FIELD     DESCRIPTION          
  1759.  
  1760.              RETCODE   Error code or 0 if no error.
  1761.              CMD_DONE  FF until command done
  1762.  
  1763.  
  1764.  
  1765.  
  1766.  
  1767.  
  1768.  
  1769.  
  1770.  
  1771.  
  1772.  
  1773.  
  1774.  
  1775.                                        22
  1776.  
  1777.  
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.                              Session Status Command
  1786.  
  1787.         Use this command to obtain the status of all sessions associated 
  1788.         with a given name.  Table 2 on the following page shows the 
  1789.         format of the status.  
  1790.  
  1791.  
  1792.         NCB FIELDS SET:   
  1793.  
  1794.              FIELD     DESCRIPTION          
  1795.  
  1796.              COMMAND   034h (Wait mode), 0B4h (No-wait mode)
  1797.              LANA_NUM  Specifies which LANA the command is addressing      
  1798.              NAME      Name for which status desired
  1799.              BUFADR    Address of buffer to receive status report
  1800.              BUFLEN    Length of buffer (at least 4)  
  1801.              POST      Used in no-wait mode only, 
  1802.                        Contains address of post routine or 0:0 
  1803.  
  1804.  
  1805.         NCB FIELDS RETURNED:
  1806.  
  1807.              FIELD     DESCRIPTION          
  1808.  
  1809.              RETCODE   06h, If message incomplete, buffer not large enough
  1810.                        00,  If no error
  1811.              BUFLEN    Actual size of buffer
  1812.              CMD_DONE  FF until command done
  1813.  
  1814.  
  1815.  
  1816.  
  1817.  
  1818.  
  1819.  
  1820.  
  1821.  
  1822.  
  1823.  
  1824.  
  1825.  
  1826.  
  1827.  
  1828.  
  1829.  
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837.  
  1838.  
  1839.  
  1840.  
  1841.                                        23
  1842.  
  1843.  
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849.  
  1850.                                      Table 2
  1851.                           Session Status Result Buffer
  1852.  
  1853.                                       
  1854.         Offset   Byte Size  Field Description                    
  1855.          (Hex)     (Dec) 
  1856.  
  1857.            0         1      Sessions' name number.                           
  1858.  
  1859.            1         1      Number of sessions under name.                   
  1860.  
  1861.            2         1      Number of RECEIVE DATAGRAM and RECEIVE           
  1862.                             BROADCAST commands outstanding.                  
  1863.          
  1864.            3         1      Number of RECEIVE ANY commands outstanding.      
  1865.  
  1866.           (4)      (36)     Session status - first session (if at least 1).  
  1867.            4         1       * Local session number (LSN).                   
  1868.            5         1       * Session state                                 
  1869.                                 1: LISTEN pending   4: HANG UP pending       
  1870.                                 2: CALL pending     5: HANG UP complete      
  1871.                                 3: Active           6: Session aborted       
  1872.            6        16       * Local name (NAME)                             
  1873.           16        16       * Remote name (CALLNAME)                        
  1874.           26         1       * Number of RECEIVE commands outstanding        
  1875.           27         1       * Number of SEND and CHAIN SEND commands        
  1876.                               outstanding                                   
  1877.           28       X36     Session status for additional sessions as        
  1878.                             needed                                           
  1879.  
  1880.  
  1881.  
  1882.  
  1883.  
  1884.  
  1885.  
  1886.  
  1887.  
  1888.  
  1889.  
  1890.  
  1891.  
  1892.  
  1893.  
  1894.  
  1895.  
  1896.  
  1897.  
  1898.  
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905.  
  1906.  
  1907.                                        24
  1908.  
  1909.  
  1910.  
  1911.  
  1912.  
  1913.  
  1914.  
  1915.  
  1916.                           SESSION DATA TRANSFER COMMANDS
  1917.  
  1918.         Session Data Transfer commands are used to send or receive 
  1919.         messages between computers once the session has been established.
  1920.  
  1921.         Session data transfer commands are:
  1922.  
  1923.                   -    Send
  1924.                   -    Chain Send
  1925.                   -    Receive
  1926.                   -    Receive Any
  1927.  
  1928.         Once a session is established, the Net Bios maintains tables that 
  1929.         allow the process to specify the remote computer for data transfer 
  1930.         with a session number.  Send and receive commands use this 
  1931.         session number for data transmission.  In addition, a "receive 
  1932.         any" command allows a process to receive messages from any of the 
  1933.         sessions it has established.
  1934.  
  1935.         The commands available in this group are described below.  For 
  1936.         each command, the required NCB fields are listed. 
  1937.  
  1938.  
  1939.  
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945.  
  1946.  
  1947.  
  1948.  
  1949.  
  1950.  
  1951.  
  1952.  
  1953.  
  1954.  
  1955.  
  1956.  
  1957.  
  1958.  
  1959.  
  1960.  
  1961.  
  1962.  
  1963.  
  1964.  
  1965.  
  1966.  
  1967.  
  1968.  
  1969.  
  1970.  
  1971.  
  1972.  
  1973.                                        25
  1974.  
  1975.  
  1976.  
  1977.  
  1978.  
  1979.  
  1980.  
  1981.  
  1982.  
  1983.                                   Send Command
  1984.  
  1985.         Use this command to send data to the machine or process with which a 
  1986.         session as been established.  The remote session must have issued 
  1987.         (or issue before the time-out specified earlier in STO) a RECEIVE 
  1988.         or RECEIVE ANY command.
  1989.  
  1990.         Priority: SENDs are performed in the order in which they are 
  1991.                   issued.  
  1992.  
  1993.         Caution:  If an error occurs on the send, then the session is 
  1994.                   terminated.
  1995.  
  1996.  
  1997.         NCB FIELDS USED:
  1998.  
  1999.              FIELD     DESCRIPTION          
  2000.  
  2001.              COMMAND   014h (Wait mode), 094h (No-wait mode)
  2002.              LANA_NUM  Specifies which LANA the command is addressing      
  2003.              LSN       Session number
  2004.              BUFADR    Start address of buffer 
  2005.              BUFLEN    Length of buffer
  2006.              POST      Used in no-wait mode only, 
  2007.                        Contains address of post routine or 0:0 
  2008.  
  2009.  
  2010.         NCB FIELDS RETURNED:
  2011.  
  2012.              FIELD     DESCRIPTION          
  2013.  
  2014.              RETCODE   Error code or 0 if no error.
  2015.              CMD_DONE  FF until command done
  2016.  
  2017.  
  2018.  
  2019.  
  2020.  
  2021.  
  2022.  
  2023.  
  2024.  
  2025.  
  2026.  
  2027.  
  2028.  
  2029.  
  2030.  
  2031.  
  2032.  
  2033.  
  2034.  
  2035.  
  2036.  
  2037.  
  2038.  
  2039.                                        26
  2040.  
  2041.  
  2042.  
  2043.  
  2044.  
  2045.  
  2046.  
  2047.  
  2048.  
  2049.                                Chain Send Command
  2050.  
  2051.         The CHAIN SEND command is similar to the SEND command, except the 
  2052.         data to be transferred is contained in two separate buffers.  
  2053.         CHAIN send concatenates these buffers -- the receiving end will 
  2054.         see one message.  
  2055.  
  2056.  
  2057.         NCB FIELDS SET:
  2058.  
  2059.              FIELD          DESCRIPTION          
  2060.  
  2061.              COMMAND        017h (Wait mode), 097h (No-wait mode)
  2062.              LANA_NUM       Specifies which LANA the command is addressing      
  2063.              BUFADR         Address of first buffer
  2064.              BUFLEN         Length of first buffer
  2065.              CALLNAME+2     Address of second buffer
  2066.              CALLNAME+0     Length of second buffer
  2067.              LSN            Local session number
  2068.              POST           Used in no-wait mode only, 
  2069.                             Contains address of post routine or 0:0 
  2070.  
  2071.         The total length of both buffers cannot exceed 65535 bytes.
  2072.  
  2073.  
  2074.         NCB FIELDS RETURNED:
  2075.  
  2076.              FIELD     DESCRIPTION          
  2077.  
  2078.              RETCODE   Error code or 0 if no error.
  2079.              CMD_DONE  FF until command done
  2080.  
  2081.  
  2082.  
  2083.  
  2084.  
  2085.  
  2086.  
  2087.  
  2088.  
  2089.  
  2090.  
  2091.  
  2092.  
  2093.  
  2094.  
  2095.  
  2096.  
  2097.  
  2098.  
  2099.  
  2100.  
  2101.  
  2102.  
  2103.  
  2104.  
  2105.                                        27
  2106.  
  2107.  
  2108.  
  2109.  
  2110.  
  2111.  
  2112.  
  2113.  
  2114.  
  2115.                                  Receive Command
  2116.  
  2117.         Use this command to receive data from a computer or process with 
  2118.         which a session as been established.  The remote session must 
  2119.         issue a SEND or CHAIN SEND command.  
  2120.  
  2121.         If a send is not issued by the remote within the time specified 
  2122.         earlier in RTO, the RECEIVE will complete with a time out error 
  2123.         (RETCODE = 05h).   Time outs do not cause session termination. 
  2124.  
  2125.         PRIORITY:  RECEIVE commands are completed in the order in which 
  2126.         they are issued.  If received data could be used to complete 
  2127.         either a RECEIVE or RECEIVE ANY, the RECEIVE is given priority 
  2128.         and completed.
  2129.  
  2130.         If the maximum buffer length was smaller than the length of the 
  2131.         data, then the buffer is filled to the maximum and RETCODE = 06h 
  2132.         is returned.  The next RECEIVE (or RECEIVE ANY) will be completed 
  2133.         with the remainder of the data.
  2134.  
  2135.  
  2136.         NCB FIELDS USED:
  2137.  
  2138.              FIELD     DESCRIPTION          
  2139.  
  2140.              COMMAND   015h (Wait mode), 095h (No-wait mode)
  2141.              LANA_NUM  Specifies which LANA the command is addressing      
  2142.              LSN       Session number
  2143.              BUFADR    Address of buffer  
  2144.              BUFLEN    Maximum length of receive data buffer.
  2145.              POST      Used in no-wait mode only, 
  2146.                        Contains address of post routine or 0:0 
  2147.  
  2148.  
  2149.         NCB FIELDS RETURNED:
  2150.  
  2151.              FIELD     DESCRIPTION          
  2152.  
  2153.              BUFLEN    Actual size of the received data 
  2154.              RETCODE   Error code or 0 if no error.
  2155.              CMD_DONE  FF until command done
  2156.  
  2157.  
  2158.  
  2159.  
  2160.  
  2161.  
  2162.  
  2163.  
  2164.  
  2165.  
  2166.  
  2167.  
  2168.  
  2169.  
  2170.  
  2171.                                        28
  2172.  
  2173.  
  2174.  
  2175.  
  2176.  
  2177.  
  2178.  
  2179.  
  2180.  
  2181.                                Receive Any Command
  2182.  
  2183.         Use this command to receive data from any session.  The remote 
  2184.         session must issue a SEND or CHAIN SEND command.  There is no 
  2185.         time-out on this command.  
  2186.  
  2187.         PRIORITY:  RECEIVE ANY commands are completed in the order in 
  2188.         which they are issued.  If received data could be used to 
  2189.         complete either a RECEIVE or RECEIVE ANY, the RECEIVE is given 
  2190.         priority and completed.
  2191.  
  2192.         If the maximum buffer length was smaller than the length of the 
  2193.         data, then the buffer is filled to the maximum and RETCODE = 06h 
  2194.         is returned.  The next RECEIVE ANY (or RECEIVE) will be completed 
  2195.         with the remainder of the data.
  2196.  
  2197.         RECEIVE ANY is used by a process that services multiple users.  
  2198.         Session termination by the local or remote process will cause the 
  2199.         next pending RECEIVE ANY to complete with RETCODE = 0Ah (session 
  2200.         terminated) or 18h (session terminated abnormally).
  2201.  
  2202.  
  2203.         NCB FIELDS SET:   
  2204.  
  2205.              FIELD     DESCRIPTION          
  2206.  
  2207.              COMMAND   016h (Wait mode), 096h (No-wait mode)
  2208.              LANA_NUM  Specifies which LANA the command is addressing      
  2209.              NUM       Name number of allowable sessions, 
  2210.                        or 0FFh to receive for any session under any name.  
  2211.              BUFADR    Address of the receive data buffer
  2212.              BUFLEN    Maximum length of the receive data buffer
  2213.              POST      Used in no-wait mode only, 
  2214.                        Contains address of post routine or 0:0 
  2215.  
  2216.  
  2217.         NCB FIELDS RETURNED:
  2218.  
  2219.              FIELD     DESCRIPTION          
  2220.  
  2221.              LSN       Local session number of a completed receive 
  2222.              BUFLEN    Actual size of the received data 
  2223.              RETCODE   Error code or 0 if no error.
  2224.              CMD_DONE  FF until command done
  2225.  
  2226.  
  2227.  
  2228.  
  2229.  
  2230.  
  2231.  
  2232.  
  2233.  
  2234.  
  2235.  
  2236.  
  2237.                                        29
  2238.  
  2239.  
  2240.  
  2241.  
  2242.  
  2243.  
  2244.  
  2245.  
  2246.  
  2247.                                 DATAGRAM COMMANDS
  2248.  
  2249.         Datagrams provide a means to transfer data between 
  2250.         processes without using the session mechanism.  Messages may be 
  2251.         sent to a given name, a group name, or to all processes.  
  2252.         Datagram messages do not provide the same reliability as session data 
  2253.         transfer, since the sender will not be notified when messages are 
  2254.         undeliverable.
  2255.  
  2256.         Datagram commands are:
  2257.  
  2258.                   -    Send Datagram
  2259.                   -    Receive Datagram
  2260.                   -    Send Broadcast
  2261.                   -    Receive Broadcast
  2262.  
  2263.         These commands are described below.  For each command, the 
  2264.         required NCB fields are listed. 
  2265.  
  2266.                               Send Datagram Command
  2267.  
  2268.         Use this command to send a datagram message.  The Net Bios 
  2269.         does not detect whether the message was successfully 
  2270.         delivered.  
  2271.  
  2272.  
  2273.         NCB FIELDS SET:   
  2274.  
  2275.              FIELD     DESCRIPTION          
  2276.  
  2277.              COMMAND   020h (Wait mode), 0A0h (No-wait mode)
  2278.              LANA_NUM  Specifies which LANA the command is addressing      
  2279.              NUM       Local name number
  2280.              CALLNAME  Destination name (may be a group name.)
  2281.              BUFADR    Address
  2282.              BUFLEN    Length of the message. 512 bytes maximum 
  2283.              POST      Used in no-wait mode only, 
  2284.                        Contains address of post routine or 0:0 
  2285.  
  2286.  
  2287.         NCB FIELDS RETURNED:
  2288.  
  2289.              FIELD     DESCRIPTION          
  2290.  
  2291.              RETCODE   Error code or 0 if no error.
  2292.              CMD_DONE  FF until command done
  2293.  
  2294.  
  2295.  
  2296.  
  2297.  
  2298.  
  2299.  
  2300.  
  2301.  
  2302.  
  2303.                                        30
  2304.  
  2305.  
  2306.  
  2307.  
  2308.  
  2309.  
  2310.  
  2311.  
  2312.  
  2313.                             Receive Datagram Command
  2314.  
  2315.         Use this command to wait for a SEND DATAGRAM to the name associated 
  2316.         with the NUM field.  There is no time-out on this command.  If 
  2317.         the maximum buffer length was smaller than the length of the 
  2318.         data, then the buffer is filled to the maximum and RETCODE = 06h 
  2319.         is returned.  The remaining data is lost. 
  2320.  
  2321.  
  2322.         NCB FIELDS SET:   
  2323.  
  2324.              FIELD     DESCRIPTION          
  2325.  
  2326.              COMMAND   021h (Wait mode), 0A1h (No-wait mode)
  2327.              LANA_NUM  Specifies which LANA the command is addressing      
  2328.              BUFADR    Address of receive data buffer
  2329.              BUFLEN    Maximum length of receive data buffer
  2330.              NUM       Name, may be a group name 
  2331.                        or 0FFh to receive all datagrams to the machine. 
  2332.              POST      Used in no-wait mode only, 
  2333.                        Contains address of post routine or 0:0 
  2334.  
  2335.  
  2336.         NCB FIELDS RETURNED:
  2337.  
  2338.              FIELD     DESCRIPTION          
  2339.  
  2340.              CALLNAME  The name of the sender 
  2341.              BUFLEN    The actual size of the received data 
  2342.              RETCODE   Error code or 0 if no error.
  2343.              CMD_DONE  FF until command done
  2344.  
  2345.  
  2346.  
  2347.  
  2348.  
  2349.  
  2350.  
  2351.  
  2352.  
  2353.  
  2354.  
  2355.  
  2356.  
  2357.  
  2358.  
  2359.  
  2360.  
  2361.  
  2362.  
  2363.  
  2364.  
  2365.  
  2366.  
  2367.  
  2368.  
  2369.                                        31
  2370.  
  2371.  
  2372.  
  2373.  
  2374.  
  2375.  
  2376.  
  2377.  
  2378.                              Send Broadcast Command
  2379.  
  2380.         Use this command to send a broadcast message.  The Net Bios 
  2381.         does not detect whether the message was successfully 
  2382.         delivered.  
  2383.  
  2384.         Each SEND BROADCAST satisfies all outstanding RECEIVE BROADCAST 
  2385.         commands on the network.
  2386.  
  2387.  
  2388.         NCB FIELDS SET:   
  2389.  
  2390.              FIELD     DESCRIPTION          
  2391.  
  2392.              COMMAND   022h (Wait mode), 0A2h (No-wait mode)
  2393.              LANA_NUM  Specifies which LANA the command is addressing      
  2394.              NUM       Local name number
  2395.              BUFADR    Address of buffer 
  2396.              BUFLEN    Length of the message, 512 bytes maximum  
  2397.              POST      Used in no-wait mode only, 
  2398.                        Contains address of post routine or 0:0 
  2399.  
  2400.  
  2401.         NCB FIELDS RETURNED:
  2402.  
  2403.              FIELD     DESCRIPTION          
  2404.  
  2405.              RETCODE   Error code or 0 if no error.
  2406.              CMD_DONE  FF until command done
  2407.  
  2408.  
  2409.  
  2410.  
  2411.  
  2412.  
  2413.  
  2414.  
  2415.  
  2416.  
  2417.  
  2418.  
  2419.  
  2420.  
  2421.  
  2422.  
  2423.  
  2424.  
  2425.  
  2426.  
  2427.  
  2428.  
  2429.  
  2430.  
  2431.  
  2432.  
  2433.  
  2434.  
  2435.                                        32
  2436.  
  2437.  
  2438.  
  2439.  
  2440.  
  2441.  
  2442.  
  2443.  
  2444.  
  2445.                             Receive Broadcast Command
  2446.  
  2447.         Use this command to wait for a SEND BROADCAST message.  There is no 
  2448.         time-out on this command.  
  2449.  
  2450.         Each SEND BROADCAST satisfies all outstanding RECEIVE BROADCAST 
  2451.         commands on the network.
  2452.  
  2453.         If the maximum buffer length was smaller than the length of the 
  2454.         data, then the buffer is filled to the maximum and RETCODE = 06h 
  2455.         is returned.  The remaining data is lost. 
  2456.  
  2457.  
  2458.         NCB FIELDS SET:   
  2459.  
  2460.              FIELD     DESCRIPTION          
  2461.  
  2462.              COMMAND   023h (Wait mode), 0A3h (No-wait mode)
  2463.              LANA_NUM  Specifies which LANA the command is addressing      
  2464.              NUM       Valid name number
  2465.              BUFADR    Address of receive data buffer
  2466.              BUFLEN    Size of receive data buffer
  2467.              POST      Used in no-wait mode only, 
  2468.                        Contains address of post routine or 0:0 
  2469.  
  2470.  
  2471.         NCB FIELDS RETURNED:
  2472.  
  2473.              FIELD     DESCRIPTION          
  2474.  
  2475.              CALLNAME  Name of the sender 
  2476.              BUFLEN    Actual size of the received data
  2477.              RETCODE   Error code or 0 if no error.
  2478.              CMD_DONE  FF until command done
  2479.  
  2480.  
  2481.  
  2482.  
  2483.  
  2484.  
  2485.  
  2486.  
  2487.  
  2488.  
  2489.  
  2490.  
  2491.  
  2492.  
  2493.  
  2494.  
  2495.  
  2496.  
  2497.  
  2498.  
  2499.  
  2500.  
  2501.                                        33
  2502.  
  2503.  
  2504.  
  2505.  
  2506.  
  2507.  
  2508.  
  2509.  
  2510.         APPENDIX A
  2511.                             Net Bios Command Summary
  2512.  
  2513.  
  2514.            Command           Wait   No Wait                              
  2515.            Name              Code    Code     Description
  2516.  
  2517.         General Commands
  2518.                                
  2519.            RESET               32     --      Reset Net Bios.                    
  2520.            CANCEL              35     --      Cancel a pending command.          
  2521.            ADAPTER STATUS      33     B3      Get status of a Net Bios.          
  2522.            UNLINK              70     --      Cancel boot redirection.           
  2523.  
  2524.  
  2525.         Name Commands                           
  2526.  
  2527.            ADD NAME            30    B0    Add unique name to name table.     
  2528.            ADD GROUP NAME      36    B6    Add non-unique name to table.      
  2529.            DELETE NAME         31    B1    Delete name from name table.       
  2530.  
  2531.         Session Control Commands                      
  2532.  
  2533.            CALL                10    90    Establish session with another.    
  2534.            LISTEN              11    91    Wait for a CALL from another.      
  2535.            HANG UP             12    92    Close session.                     
  2536.            SESSION STATUS      34    B4    Status of sessions under name.     
  2537.  
  2538.         Session Data Transfer Commands                   
  2539.  
  2540.            SEND                14    94    Send session data.                 
  2541.            CHAIN SEND          17    97    Concatenate and send two buffers.  
  2542.            RECEIVE             15    95    Receive session data.              
  2543.            RECEIVE ANY         16    96    Receive data from any session      
  2544.                                            under specified name.              
  2545.  
  2546.         Datagram Commands                         
  2547.  
  2548.            SEND DATAGRAM       20    A0    Send data, addressed by name.      
  2549.            RECEIVE DATAGRAM    21    A1    Receive datagram to name.          
  2550.            SEND BROADCAST      22    A2    Send data to all stations.         
  2551.            RECEIVE BROADCAST   23    A3    Enable receive of next broadcast.  
  2552.  
  2553.  
  2554.  
  2555.  
  2556.  
  2557.  
  2558.  
  2559.  
  2560.  
  2561.  
  2562.  
  2563.  
  2564.  
  2565.  
  2566.  
  2567.                                  A-1
  2568.  
  2569.  
  2570.  
  2571.  
  2572.  
  2573.  
  2574.  
  2575.  
  2576.         APPENDIX B
  2577.                        Net Bios Control Block (NCB) Format
  2578.  
  2579.           Off-  Size     Field                           
  2580.           set   Bytes    Name      Field Description 
  2581.          (Hex)  (Dec)
  2582.          
  2583.             0     1     COMMAND    Net Bios command code.  High order bit     
  2584.                                    set indicates no-wait mode.                
  2585.  
  2586.             1     1     RETCODE    Completion result.  Zero if no error.      
  2587.  
  2588.             2     1     LSN        Local session number (1 to 254). Returned  
  2589.                                    by CALL and LISTEN, and supplied for       
  2590.                                    SEND and RECEIVE commands.                 
  2591.  
  2592.             3     1     NUM        Name Number (1 to 254). Returned by ADD    
  2593.                                    NAME commands, and supplied for RECEIVE    
  2594.                                    ANY and datagram commands.                 
  2595.  
  2596.             4     4     BUFADR     Address of message for send and receive.   
  2597.  
  2598.             8     2     BUFLEN     Length of message buffer. For receive      
  2599.                                    commands, supply the maximum buffer size   
  2600.                                    and the actual length is returned.         
  2601.  
  2602.            0A    16     CALLNAME   Name from/of remote machine for CALL,      
  2603.                                    LISTEN and datagrams.  For a CHAIN SEND    
  2604.                                    command, the first word specifies the      
  2605.                                    length of the second buffer, and the       
  2606.                                    next two words specify the address.        
  2607.  
  2608.            1A    16     NAME       Local name. Specifies name to add for ADD  
  2609.                                    NAME, or name to use for other commands.   
  2610.  
  2611.            2A     1     RTO        Receive time-out in .5 second increments.  
  2612.                                    Supplied on CALL and LISTEN commands.      
  2613.  
  2614.            2B     1     STO        Send time-out in .5 second increments.     
  2615.                                    Supplied on CALL and LISTEN commands.      
  2616.  
  2617.            2C     4     POST       Address of user interrupt routine called   
  2618.                                    when command completes and no-wait mode    
  2619.                                    mode was specified in command code. Not    
  2620.                                    called if set to 0:0.                      
  2621.  
  2622.            30     1     LANA_NUM   Number of adapter card -- 0 for the first  
  2623.                                    and 1 for the second, if applicable.       
  2624.  
  2625.            31     1     CMD_DONE   Command completed flag. A value of 0FFH    
  2626.                                    indicates the command has not completed.   
  2627.                                    When the command has completed, CMD_DONE   
  2628.                                    is set to same value as RETCODE.           
  2629.  
  2630.            32    14     RES        Used internally by Net Bios.               è
  2631.  
  2632.                                  B-1
  2633.  
  2634.  
  2635.  
  2636.  
  2637.  
  2638.  
  2639.  
  2640.  
  2641.  
  2642.  
  2643.                          NCB Field Input/Output Summary
  2644.         =================================================================
  2645.         |               | C | R | L | N | B | B | C | N | R | P | L | C |
  2646.         |               | O | E | S | U | U | U | A | A | T | O | A | M |
  2647.         |               | M | T | N | M | F | F | L | M | O | S | N | D |
  2648.         |               | M | C |   |   | A | L | L | E | & | T | A | _ |
  2649.         |               | A | O |   |   | D | E | N |   | S |   | _ | D |
  2650.         |               | N | D |   |   | R | N | A |   | T |   | N | O |
  2651.         |               | D | E |   |   |   |   | M |   | O |   | U | N |
  2652.         |               |   |   |   |   |   |   | E |   |   |   | M | E |
  2653.         |               |   |   |   |   |   |   |   |   |   |   |   |   |
  2654.         |    Command    |   |   |   |   |BUF|BUF|CAL|   |RTO|   |LAN|CMD|
  2655.         |      Name     |CMD|RET|LSN|NUM|ADR|LEN|NAM|NAM|STO|PST|NUM|DON|
  2656.         =================================================================
  2657.         |RESET          | I | O | I | I | - | - | - | - | - | - | I | O |
  2658.         |CANCEL         | I | O | - | - | I | - | - | - | - | - | I | O |
  2659.         |ADAPTER STATUS | I | O | - | - | I |I/O| I | - | - | I | I | O |
  2660.         |UNLINK         | I | O | - | - | - | - | - | - | - | - | I | O |
  2661.         =================================================================
  2662.         |ADD NAME       | I | O | - | O | - | - | - | I | - | I | I | O |
  2663.         |ADD GROUP NAME | I | O | - | O | - | - | - | I | - | I | I | O |
  2664.         |DELETE NAME    | I | O | - | - | - | - | - | I | - | I | I | O |
  2665.         =================================================================
  2666.         |CALL           | I | O | O | - | - | - | I | I | I | I | I | O |
  2667.         |LISTEN         | I | O | O | - | - | - |I/O| I | I | I | I | O |
  2668.         |HANG UP        | I | O | I | - | - | - | - | - | - | I | I | O |
  2669.         |SESSION STATUS | I | O | - | - | I |I/O| - | I | - | I | I | O |
  2670.         =================================================================
  2671.         |SEND           | I | O | I | - | I | I | - | - | - | I | I | O |
  2672.         |CHAIN SEND     | I | O | I | - | I | I | I | - | - | I | I | O |
  2673.         |RECEIVE        | I | O | I | - | I |I/O| - | - | - | I | I | O |
  2674.         |RECEIVE ANY    | I | O | O | I | I |I/O| - | - | - | I | I | O |
  2675.         =================================================================
  2676.         |SEND DATAGRAM  | I | O | - | I | I | I | I | - | - | I | I | O |
  2677.         |RECV DATAGRAM  | I | O | - | I | I |I/O| O | - | - | I | I | O |
  2678.         |SEND BROADCAST | I | O | - | I | I | I | - | - | - | I | I | O |
  2679.         |RECV BROADCAST | I | O | - | I | I |I/O| O | - | - | I | I | O |
  2680.         =================================================================
  2681.  
  2682.              Legend
  2683.                 I  =  Field is input (passed to Net Bios)
  2684.                 O  =  Field is output (returned by Net Bios)
  2685.                I/O =  Field is used for both input and output
  2686.  
  2687.  
  2688.  
  2689.  
  2690.  
  2691.  
  2692.  
  2693.  
  2694.  
  2695.  
  2696.  
  2697.  
  2698.                                  B-2
  2699.  
  2700.  
  2701.  
  2702.  
  2703.  
  2704.  
  2705.  
  2706.  
  2707.         APPENDIX C
  2708.                          NET BIOS ERROR CODE LISTING
  2709.  
  2710.           Code   Description                           
  2711.  
  2712.            00    No error.                                               
  2713.  
  2714.            01    Illegal buffer length.  A SEND BROADCAST or SEND        
  2715.                  DATAGRAM command specified a length greater than 512    
  2716.                  bytes, or a status command specified a buffer length    
  2717.                  smaller than minimum allowed.                           
  2718.  
  2719.            03    Invalid command.                                        
  2720.  
  2721.            05    Time out.  For SEND, RECEIVE, and HANG UP commands, the 
  2722.                  time-out specified when the session was established has 
  2723.                  elapsed.  For a CALL or ADAPTER STATUS command, an      
  2724.                  internal timer expired.                                 
  2725.  
  2726.            06    Message Incomplete.  The buffer size specified in the   
  2727.                  NCB was not large enough to hold the receive data. For  
  2728.                  RECEIVE or RECEIVE ANY commands, the next command will  
  2729.                  get the rest of the data.  For other commands, the      
  2730.                  remaining data is lost.                                 
  2731.  
  2732.            08    Invalid local session number (LSN).                     
  2733.  
  2734.            09    Out of resources.  The Net Bios is out of some internal 
  2735.                  resource, such as buffers.  Delay and reissue the       
  2736.                  command.                                                
  2737.  
  2738.            0A    Session closed.  For a SEND, RECEIVE, RECEIVE ANY, or   
  2739.                  HANG UP, this indicates that the session was terminated 
  2740.                  by the remote computer.                                 
  2741.  
  2742.            0B    Command canceled.  Command execution of the NCB was     
  2743.                  aborted by the CANCEL command.                          
  2744.  
  2745.            0D    Duplicate local name.  An ADD NAME command specified    
  2746.                  an existing name.                                       
  2747.  
  2748.            0E    Name table full.                                        
  2749.  
  2750.            0F    DELETE NAME completed, but name has active sessions     
  2751.                  (name will be deleted when all sessions closed).        
  2752.  
  2753.            11    Local session table full.                               
  2754.  
  2755.            12    Remote computer not listening.  On a CALL, the remote   
  2756.                  computer was found, but had no outstanding LISTEN for   
  2757.                  the CALL.                                               
  2758.  
  2759.            13    Invalid name number.                                    
  2760.  
  2761.            14    Name not found.                                         è
  2762.  
  2763.                                  C-1
  2764.  
  2765.  
  2766.  
  2767.  
  2768.  
  2769.  
  2770.  
  2771.  
  2772.                           NET BIOS ERROR CODE LISTING (cont.)
  2773.  
  2774.           Code   Description                           
  2775.  
  2776.            15    Name not found or "*" or 00h in first byte of remote    
  2777.                  name field on a CALL.                                   
  2778.  
  2779.            16    Name already exists on network.                         
  2780.  
  2781.            17    Name was deleted.                                       
  2782.  
  2783.            18    Session terminated abnormally.  Connection with the     
  2784.                  remote computer was lost.                               
  2785.  
  2786.            19    Name conflict.  Two computers using the same name was   
  2787.                  detected.                                               
  2788.  
  2789.            21    Interface busy.  The Net Bios cannot execute because    
  2790.                  it was called from an interrupt handler.                
  2791.  
  2792.            22    Too many commands issued.                               
  2793.  
  2794.            23    Invalid LAN adapter (LANA) number.                      
  2795.  
  2796.            24    Command completed before canceled.  Returned in CANCEL  
  2797.                  NCB when target command completed normally.             
  2798.  
  2799.            26    Invalid cancel command.  The target NCB could not be    
  2800.                  found.                                                  
  2801.  
  2802.          40-FE   Hardware error.                                         
  2803.  
  2804.            FF    Indicates the command has not completed.                
  2805.  
  2806.  
  2807.  
  2808.  
  2809.  
  2810.  
  2811.  
  2812.  
  2813.  
  2814.  
  2815.  
  2816.  
  2817.  
  2818.  
  2819.  
  2820.  
  2821.  
  2822.  
  2823.  
  2824.  
  2825.  
  2826.  
  2827.  
  2828.  
  2829.                                  C-2
  2830.  
  2831.  
  2832.  
  2833.  
  2834.  
  2835.